1, "exceptions" => 0); $wrapper = new WortschatzUniLeipzigApiWrapper($username, $password, $options); $design = new Template(); $func = new Functions(); if ($func->folder_exist($settings['dest'].$settings['src']) === FALSE){ // folder does not exists // Create instance $func->copyDirectory($settings); } // NAME ENTITY TAGGER $ner = new \StanfordNLP\NERTagger( $settings['dest'].'/home/www/www.onetipp.com/library/postagger/bin/stanford-german-2015-10-14-models/edu/stanford/nlp/models/ner/german.dewac_175m_600.crf.ser.gz', $settings['dest'].'/home/www/www.onetipp.com/library/postagger/bin/stanford-ner-2015-12-09/stanford-ner-3.6.0.jar' ); // GERMAN POS TAGGER $pos = new \StanfordNLP\POSTagger( $settings['dest'].'/home/www/www.onetipp.com/library/postagger/bin/stanford-postagger-full-2015-12-09/models/german-dewac.tagger', $settings['dest'].'/home/www/www.onetipp.com/library/postagger/bin/stanford-postagger-full-2015-12-09/stanford-postagger-3.6.0.jar' ); if (strlen($text)<3){ $content = array_merge( array('robots'=>"INDEX,FOLLOW,ALL"), array('title'=>"Unique Content Creation by OneTIPP.COM!"), array('onetipp_original'=>$text), array('onetipp_results'=>$text), array('onetipp_debug'=>"$output - OneTIPP Version: $mod_date"), array('description'=>"Kopiere einen Text und erstelle vollautomatisch einen neuen Text - Leistungsschutzkonform und Urheberrechtlich sicher!") ); $design->setPath("/home/www/www.onetipp.com/tpl-new"); $design->display('startpage_new', $content, true, false); exit; } $result_pos = $pos->tag(explode(' ', $text)); $result_ner = $ner->tag(explode(' ', $text)); // German Model: I-PER, I-LOC, I-ORG, I-MISC $arrMerger = array(); $rPos = $func->array_merge_deep($result_pos); $nPos = $func->array_merge_deep($result_ner); for ($i=0; $i<=count($rPos)-1; $i++){ $posWord = $rPos[$i][0]; $nerWord = $nPos[$i][0]; $posValue = $rPos[$i][1]; $nerValue = $nPos[$i][1]; // echo "WortPOS: -$key- $posWord --> $posValue : ".count($result_pos[$i])."
\n"; // echo "WortNER: -$key- $nerWord --> $nerValue : ".count($result_ner[$i])."
\n"; if ( strcasecmp($posWord, $nerWord) == 0){ $a = array( "word"=>$posWord, "len"=>strlen($posWord), "pos"=>$posValue, "ner"=>$nerValue, ); $GetParamText .= $posWord." "; array_push($arrMerger, $a); } } /*todo: später //var_dump($arrMerger); for ($i=0; $i<=count($arrMerger)-1; $i++){ $valArrMerger = $arrMerger[$i]; $w = $valArrMerger["word"]; $l = $valArrMerger["len"]; $p = $valArrMerger["pos"]; $n = $valArrMerger["ner"]; $GetParamText .= $w." "; // wenn POS Tag des aktuellen Wortes nicht in verbotener Stopwortliste und kein Eigenname $ignorePOS = $func->IgnorePosTags(); if (!in_array($p, $ignorePOS) && strcasecmp($n,"O")==0){ ////// $suggestion_spell = orthograph($w); // schreibfehler korrigieren ////// echo "Wort:$w [$p:$n] kann verändert werden: Schreibfehler?:->$suggestion_spell!


"; try{ $result = $wrapper->Synonyms($w, 5); echo "SUCCESS!\n"; echo "Result:\n"; //var_dump($result); //$arrObject = get_object_vars($results); //print_r($arrObject); echo } catch(Exception $e){ echo "ERROR! ".$e->getMessage()."\n"; } } } */ $json_englisch = $func->translateSDL("ger","eng",urlencode($GetParamText)); $objEng = json_decode($json_englisch); $english_translation = $objEng->translation; var_dump($objEng); $json_deutsch = $func->translateSDL("eng","ger",urlencode($english_translation)); $objDeu = json_decode($json_deutsch); $german_translation = $objDeu->translation; //var_dump($objDeu); $d = str_ireplace("ä","ae",$german_translation); $d = str_ireplace("ö","oe",$d); $d = str_ireplace("ü","ue",$d); $d = str_ireplace("&SZLIG;","ss",$d); $data = htmlspecialchars($d); /* Ablauf übersetzung: 1 übersetzen von deutsch ins englische 2 teste ob in englischer übersetzung noch deutsche wörter drin sind und tausche diese aus oder übersetze diese mit einem anderen programm -> https://github.com/Stichoza/google-translate-php 3 englisch synonyme austauschen 4 übersetze von englisch nach deutsch 5 ausgabe */ $content = array_merge( array('robots'=>"INDEX,FOLLOW,ALL"), array('title'=>"Unique Content Creation by OneTIPP.COM!"), array('onetipp_original'=>$text), array('onetipp_results'=>$data), array('onetipp_debug'=>"$output - OneTIPP Version: $mod_date"), array('description'=>"Kopiere einen Text und erstelle vollautomatisch einen neuen Text - Leistungsschutzkonform und Urheberrechtlich sicher!") ); $design->setPath("/home/www/www.onetipp.com/tpl-new"); $design->display('startpage_new', $content, true, false); //echo $design->display_cache('startpage_new', $content, false, false, 3600*24*3); // connect to mongodb $m = new MongoClient("mongodb://127.0.0.1:27017", array( "socketTimeoutMS" => 100000 ) ); //echo "Connection to database successfully"; // select a database $db = $m->OnetippProcessingStorage; //echo "Database mydb selected"; //$collection = $db->createCollection("storeProcessed"); //echo "Collection created succsessfully"; // select a collection (analogous to a relational database's table) $c = $m->selectCollection("storeProcessed"); $document = array( "inserttimestamp_ms" => round(microtime(true) * 1000), "inserttimestamp_unix" => time(), "fromText" => "ger", "toText" => "eng", "outputLanguage" => "ger", "toTextContentRaw" => $json_englisch, "toTextContentPlain" => $english_translation, "fromTextContentRaw" => $json_deutsch, "fromTextContentPlain" => $german_translation, "originalTextInput" => $text, "autorprofil_id" => "", "autorprofil_version" => "0.0.0.0" ); // add a record $cursor = $collection->insert($document)->timeout(60000); var_dump($collection); var_dump($db); //echo "Document inserted successfully"; var_dump($c->getIndexInfo()); exit(0); /* Ablauf: POS Taggen NER Taggen POS UND NER TAG IN EINE GEMEINSAME ARRAY STRUKTUR BRINGEN, Zb array("word=Haus", "POS=NN", "NER=O") Spell Check mit ASPELL wenn Wort länger als gleich 4 zeichen hat, wenn NER Taggen NICHT "LOCATION" oder NICHT "ORGANIZATION" oder NICHT "PERSON" UND EINSCHLIESSLICH: POS Taggen TAG GLEICH "NOMEN" oder "Verb" oder "Adjektiv" oder "Adverb" => hier auchnochmal im Python code gucken, was modifiziert werden darf Nach dem Spell Check, UniLeiptizg nutzen: Synonme austauschen, wenn wenn NER Taggen NICHT "LOCATION" oder NICHT "ORGANIZATION" oder NICHT "PERSON" UND EINSCHLIESSLICH: POS Taggen TAG GLEICH "NOMEN" oder "Verb" oder "Adjektiv" oder "Adverb" Dann Translation CALL Machen dann rück und ausgabe Dann mit Zeitstempel ein und ausgabe daten in Mongodb speichern Später: Autorenprofil */